'''
本程序用于实现图书管理系统

实现了图书信息的存储形式：图书id、图书名称、图书的存储位置和是否借出
实现功能：图书信息的增删改查
'''

#将图书的数据存储到字典中
book_dict={}

#创建增加图书的功能
def add_book():
    book_id=input('请输入图书编号：')
    book_name=input('请输入图书名称：')
    book_position=input('请输入图书位置：')
    is_lend=False #图书默认为并未借出

    book_dict[book_id]={
        'book_name':book_name,
        'book_position':book_position,
        'is_lend':is_lend
    }
    print(f"添加图书成功！{book_dict[book_id]}")

#删除数据
def del_book():
    book_id=input('请输入要删除的图书编号：')
    if book_id in book_dict:
        del book_dict[book_id]
        print('删除图书成功！')
    else:
        print('删除图书失败！')

#查询数据
def select_book():
    print("1、查找详细的图书 2、查找已经借出去的图书 3、查看所有的图书信息")
    sub_code=input("请输入您需要使用的功能：")

    if sub_code=="1":
        book_id=input("请输入书的id：")
        print(book_dict[book_id])
    elif sub_code=="2":
        for i in book_dict.items():
            if i[1]["is_lend"]:
                '''
                为什么在这里使用的是i[1]而不是i[2]？
                因为当前的数据结构为元组，结构类型为(key,value)
                所以仅有0/1两个数字，其中i[0]表示key，i[2]表示value
                所以在此处代码使用i[1]而不是i[2]
                '''
                print(i)
    elif sub_code=="3":
        for i in book_dict.items():
            print(i)

#图书位置的修改
def modify_book():
    book_id=input("请输入图书的id：")
    book_position=input("请输入书存放的新位置：")
    book_dict[book_id]["book_position"]=book_position
    print(f"修改后的数据：{book_id}:{book_dict[book_id]}")

#图书的借出
def lend_book():
    book_id=input("请输入书的id:")
    book_dict[book_id]["is_lend"]=True

#图书的归还
def give_back():
    book_id=input("请输入书的id：")
    book_dict[book_id]["is_lend"]=False

while True:
    print("-"*60)
    print("1、图书添加 2、图书删除 3、图书位置修改\n"
          "4、图书借出 5、图书还回 6、图书信息查看 7、退出系统")
    func_code=input("请您输入需要使用的功能：")
    print("-"*60)

    if func_code=="1":
        add_book()
    elif func_code=="2":
        del_book()
    elif func_code=="3":
        modify_book()
    elif func_code=="4":
        lend_book()
    elif func_code=="5":
        give_back()
    elif func_code=="6":
        select_book()
    elif func_code=="7":
        break
    else:
        print("输入的选项id无效。")



